

// 配置  axios 基地址
axios.defaults.baseURL = 'https://hmajax.itheima.net'


// 轻提示函数
function showToast(msg) {
  const toast = new bootstrap.Toast(document.querySelector('.my-toast'))
  toast.show()
  document.querySelector('.toast-body').innerHTML = msg
}

// 首页 令牌token 校验函数
function checkToken() {
  const token = localStorage.getItem('token')
  // console.log(token)
  // 如果页面 没有 token，提示用户并跳转登录页面
  if (token === null) {
    showToast('请先登录')
    setTimeout(() => {
      location.href = '../login.html'
    }, 1500);
  }
}


// 首页 页面用户名渲染函数
function decUser() {
  const username = localStorage.getItem('username')
  document.querySelector('.username').innerHTML = username
}


// 首页 退出按钮函数
function quit() {
  document.querySelector('#logout').addEventListener('click', () => {
    // console.log('退出了')
    // 删除本地缓存  调转到登录页面
    localStorage.removeItem('token')
    localStorage.removeItem('username')

    location.href = '../login.html'
  })
}


// axios 请求拦截器     使登录后的每一个axios请求头都携带token值
axios.interceptors.request.use(function (config) { 
  // 在发送请求 之前做什么
  const token = localStorage.getItem('token')
  // 登录后的每一个axios请求都携带token值
  if (token) {
    config.headers['Authorization'] = token
  }
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})



// axios 响应拦截器     token失效统一处理
axios.interceptors.response.use(function (response) {
  // console.log(response)
  // 对响应数据做点什么
  // 剥离数据
  return response.data
}, function(error){
  // 响应错误做点什么
  // console.dir(error)
  //token失效 判断状态码 401
  if (error.response.status === 401) {
    localStorage.removeItem('username')
    localStorage.removeItem('token')
    showToast('请重新登录')
    setTimeout(() => {
      location.href = '../login.html'
    },1500)
  }
  return Promise.reject(error)
})

